package com.ruoyi.swla2.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * dma冻结数据对象 dm_dma_freeze
 *
 * @author gdqt
 * @date 2023-08-28
 */
@TableName("dm_dma_freeze")
public class DmaFreeze extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private String id;

    /**
     * 设备归属租户
     */
    private String tenantId;

    /**
     * 层级id
     */
    private String areaid;

    @Excel(name = "名称")
    private String areaName;

    /**
     * 冻结时间
     */
    @Excel(name = "日期")
    private String freezetime;

    /**
     * 供水量
     */
    @Excel(name = "供水量(m³)")
    private BigDecimal inputFlow;

    /**
     * 售水量
     */
    @Excel(name = "售水量(m³)")
    private BigDecimal saleWater;

    /**
     * 无收益水量
     */
    @Excel(name = "无收益水量(m³)")
    private BigDecimal freeWater;

    /**
     * 进水流量（m³）
     */
    private BigDecimal inletFlow;

    /**
     * 出水流量（m³）
     */
    private BigDecimal outletFlow;

    /**
     * 监控表用水量，总表关系中类型为“流量计”的表用水量之和
     */
    private BigDecimal jkFlow;

    /**
     * 户表用水量（m³，独立户表）
     */
    private BigDecimal householdFlow;

    /**
     * 楼栋用水量（m³）该分区下所有挂接的楼栋用水量之和（楼栋表有挂接总表则用楼栋总表之和，没有挂接则该楼栋下挂接的户表水量之和）
     */
    private BigDecimal buildingFlow;

    /**
     * 大用户用水量（m³）
     */
    private BigDecimal seniorFlow;

    /**
     * 消火栓用水量（m³）
     */
    private BigDecimal hydrantFlow;

    /**
     * 背景漏失（m³/h）
     */
    @Excel(name = "背景漏失(m³/h)")
    private BigDecimal uarl;

    /**
     * 最小夜间流量-监测值
     */
    private BigDecimal mnfDay;

    /**
     * 周最小夜间流量（立方/小时）（保留设计，暂不实现）
     */
    private BigDecimal mnfWeek;

    /**
     * 月最小夜间流量算法1（立方/小时）（保留设计，暂不实现）
     */
    private BigDecimal mnfMonth1;

    /**
     * 月最小夜间流量算法2（立方/小时）算法二：选一个收费账期（一个月）内由大到小排序值，倒序七个“日最小夜间流量”数据的均值；
     */
    private BigDecimal mnfMonth;

    /**
     * 夜间合法用水瞬时流量（立方米/小时）
     */
    private BigDecimal legalNightFlow;

    /**
     * 当天整天平均压力
     */
    private BigDecimal pressureDaily;

    /**
     * 区域夜间平均压力值（AZNP）
     */
    private BigDecimal pressureNight;

    /**
     * 物理漏损瞬时流量
     */
    private BigDecimal physicalLeakageInstant;

    /**
     * 日物理漏失流量（立方米）
     */
    @Excel(name = "物理漏失(m³)")
    private BigDecimal physicalLeakageDaily;

    /**
     * 周物理漏失流量（立方米）（保留设计，暂不实现）
     */
    private BigDecimal physicalLeakageWeek;

    /**
     * 月物理漏失累计量（立方米）
     */
    private BigDecimal physicalLeakageMonth;

    /**
     * 冻结类型，时：hour，日：day，周：week，月：month，年：year，
     */
    private String frozenType;

    /**
     * 账期
     */
    private String paydate;

    /**
     * 供水量环比
     */
    private String hb;

    /**
     * 漏损率
     */
    @Excel(name = "漏损率(%)")
    private String lsl;

    /**
     * 产销差率
     */
    @Excel(name = "产销差率(%)")
    private String cxcl;

    @TableField("mnf_rj")
    private BigDecimal mnfRj;
    @TableField("pipe_max_pressure")
    private String pipeMaxPressure;
    @TableField("pipe_min_pressure")
    private String pipeMinPressure;
    @TableField("average_traffic")
    private BigDecimal averageTraffic;
    @TableField("area_largest_flow")
    private BigDecimal areaLargestFlow;
    @TableField("area_smallest_flow")
    private BigDecimal areaSmallestFlow;
    @TableField("supply_proportion")
    private String supplyProportion;
    @TableField("sold_proportion")
    private String soldProportion;
    @TableField("no_revenue_proportion")
    private String noRevenueProportion;
    @TableField("storard")
    private String storard;
    @TableField("mnf_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String mnfTime;
    @TableField("mnf_average_percentage")
    private String mnfAveragePercentage;
    
    private Zone zone;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getAreaid() {
        return areaid;
    }

    public void setAreaid(String areaid) {
        this.areaid = areaid;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getFreezetime() {
        return freezetime;
    }

    public void setFreezetime(String freezetime) {
        this.freezetime = freezetime;
    }

    public BigDecimal getInputFlow() {
        return inputFlow;
    }

    public void setInputFlow(BigDecimal inputFlow) {
        this.inputFlow = inputFlow;
    }

    public BigDecimal getSaleWater() {
        return saleWater;
    }

    public void setSaleWater(BigDecimal saleWater) {
        this.saleWater = saleWater;
    }

    public BigDecimal getFreeWater() {
        return freeWater;
    }

    public void setFreeWater(BigDecimal freeWater) {
        this.freeWater = freeWater;
    }

    public BigDecimal getInletFlow() {
        return inletFlow;
    }

    public void setInletFlow(BigDecimal inletFlow) {
        this.inletFlow = inletFlow;
    }

    public BigDecimal getOutletFlow() {
        return outletFlow;
    }

    public void setOutletFlow(BigDecimal outletFlow) {
        this.outletFlow = outletFlow;
    }

    public BigDecimal getJkFlow() {
        return jkFlow;
    }

    public void setJkFlow(BigDecimal jkFlow) {
        this.jkFlow = jkFlow;
    }

    public BigDecimal getHouseholdFlow() {
        return householdFlow;
    }

    public void setHouseholdFlow(BigDecimal householdFlow) {
        this.householdFlow = householdFlow;
    }

    public BigDecimal getBuildingFlow() {
        return buildingFlow;
    }

    public void setBuildingFlow(BigDecimal buildingFlow) {
        this.buildingFlow = buildingFlow;
    }

    public BigDecimal getSeniorFlow() {
        return seniorFlow;
    }

    public void setSeniorFlow(BigDecimal seniorFlow) {
        this.seniorFlow = seniorFlow;
    }

    public BigDecimal getHydrantFlow() {
        return hydrantFlow;
    }

    public void setHydrantFlow(BigDecimal hydrantFlow) {
        this.hydrantFlow = hydrantFlow;
    }

    public BigDecimal getUarl() {
        return uarl;
    }

    public void setUarl(BigDecimal uarl) {
        this.uarl = uarl;
    }

    public BigDecimal getMnfDay() {
        return mnfDay;
    }

    public void setMnfDay(BigDecimal mnfDay) {
        this.mnfDay = mnfDay;
    }

    public BigDecimal getMnfWeek() {
        return mnfWeek;
    }

    public void setMnfWeek(BigDecimal mnfWeek) {
        this.mnfWeek = mnfWeek;
    }

    public BigDecimal getMnfMonth1() {
        return mnfMonth1;
    }

    public void setMnfMonth1(BigDecimal mnfMonth1) {
        this.mnfMonth1 = mnfMonth1;
    }

    public BigDecimal getMnfMonth() {
        return mnfMonth;
    }

    public void setMnfMonth(BigDecimal mnfMonth) {
        this.mnfMonth = mnfMonth;
    }

    public BigDecimal getLegalNightFlow() {
        return legalNightFlow;
    }

    public void setLegalNightFlow(BigDecimal legalNightFlow) {
        this.legalNightFlow = legalNightFlow;
    }

    public BigDecimal getPressureDaily() {
        return pressureDaily;
    }

    public void setPressureDaily(BigDecimal pressureDaily) {
        this.pressureDaily = pressureDaily;
    }

    public BigDecimal getPressureNight() {
        return pressureNight;
    }

    public void setPressureNight(BigDecimal pressureNight) {
        this.pressureNight = pressureNight;
    }

    public BigDecimal getPhysicalLeakageInstant() {
        return physicalLeakageInstant;
    }

    public void setPhysicalLeakageInstant(BigDecimal physicalLeakageInstant) {
        this.physicalLeakageInstant = physicalLeakageInstant;
    }

    public BigDecimal getPhysicalLeakageDaily() {
        return physicalLeakageDaily;
    }

    public void setPhysicalLeakageDaily(BigDecimal physicalLeakageDaily) {
        this.physicalLeakageDaily = physicalLeakageDaily;
    }

    public BigDecimal getPhysicalLeakageWeek() {
        return physicalLeakageWeek;
    }

    public void setPhysicalLeakageWeek(BigDecimal physicalLeakageWeek) {
        this.physicalLeakageWeek = physicalLeakageWeek;
    }

    public BigDecimal getPhysicalLeakageMonth() {
        return physicalLeakageMonth;
    }

    public void setPhysicalLeakageMonth(BigDecimal physicalLeakageMonth) {
        this.physicalLeakageMonth = physicalLeakageMonth;
    }

    public String getFrozenType() {
        return frozenType;
    }

    public void setFrozenType(String frozenType) {
        this.frozenType = frozenType;
    }

    public String getPaydate() {
        return paydate;
    }

    public void setPaydate(String paydate) {
        this.paydate = paydate;
    }

    public String getHb() {
        return hb;
    }

    public void setHb(String hb) {
        this.hb = hb;
    }

    public String getCxcl() {
        return cxcl;
    }

    public void setCxcl(String cxcl) {
        this.cxcl = cxcl;
    }

    public String getLsl() {
        return lsl;
    }

    public void setLsl(String lsl) {
        this.lsl = lsl;
    }

    public Zone getZone() {
        return zone;
    }

    public void setZone(Zone zone) {
        this.zone = zone;
    }

    public BigDecimal getMnfRj() {
        return mnfRj;
    }

    public void setMnfRj(BigDecimal mnfRj) {
        this.mnfRj = mnfRj;
    }

    public String getPipeMaxPressure() {
        return pipeMaxPressure;
    }

    public void setPipeMaxPressure(String pipeMaxPressure) {
        this.pipeMaxPressure = pipeMaxPressure;
    }

    public String getPipeMinPressure() {
        return pipeMinPressure;
    }

    public void setPipeMinPressure(String pipeMinPressure) {
        this.pipeMinPressure = pipeMinPressure;
    }

    public BigDecimal getAverageTraffic() {
        return averageTraffic;
    }

    public void setAverageTraffic(BigDecimal averageTraffic) {
        this.averageTraffic = averageTraffic;
    }

    public BigDecimal getAreaLargestFlow() {
        return areaLargestFlow;
    }

    public void setAreaLargestFlow(BigDecimal areaLargestFlow) {
        this.areaLargestFlow = areaLargestFlow;
    }

    public BigDecimal getAreaSmallestFlow() {
        return areaSmallestFlow;
    }

    public void setAreaSmallestFlow(BigDecimal areaSmallestFlow) {
        this.areaSmallestFlow = areaSmallestFlow;
    }

    public String getSupplyProportion() {
        return supplyProportion;
    }

    public void setSupplyProportion(String supplyProportion) {
        this.supplyProportion = supplyProportion;
    }

    public String getSoldProportion() {
        return soldProportion;
    }

    public void setSoldProportion(String soldProportion) {
        this.soldProportion = soldProportion;
    }

    public String getNoRevenueProportion() {
        return noRevenueProportion;
    }

    public void setNoRevenueProportion(String noRevenueProportion) {
        this.noRevenueProportion = noRevenueProportion;
    }

    public String getStorard() {
        return storard;
    }

    public void setStorard(String storard) {
        this.storard = storard;
    }

    public String getMnfTime() {
        return mnfTime;
    }

    public void setMnfTime(String mnfTime) {
        this.mnfTime = mnfTime;
    }

    public String getMnfAveragePercentage() {
        return mnfAveragePercentage;
    }

    public void setMnfAveragePercentage(String mnfAveragePercentage) {
        this.mnfAveragePercentage = mnfAveragePercentage;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("tenantId", getTenantId())
                .append("areaid", getAreaid())
                .append("inputFlow", getInputFlow())
                .append("saleWater", getSaleWater())
                .append("inletFlow", getInletFlow())
                .append("outletFlow", getOutletFlow())
                .append("freeWater", getFreeWater())
                .append("jkFlow", getJkFlow())
                .append("householdFlow", getHouseholdFlow())
                .append("buildingFlow", getBuildingFlow())
                .append("seniorFlow", getSeniorFlow())
                .append("hydrantFlow", getHydrantFlow())
                .append("uarl", getUarl())
                .append("mnfDay", getMnfDay())
                .append("mnfWeek", getMnfWeek())
                .append("mnfMonth1", getMnfMonth1())
                .append("mnfMonth", getMnfMonth())
                .append("legalNightFlow", getLegalNightFlow())
                .append("pressureDaily", getPressureDaily())
                .append("pressureNight", getPressureNight())
                .append("physicalLeakageInstant", getPhysicalLeakageInstant())
                .append("physicalLeakageDaily", getPhysicalLeakageDaily())
                .append("physicalLeakageWeek", getPhysicalLeakageWeek())
                .append("physicalLeakageMonth", getPhysicalLeakageMonth())
                .append("freezetime", getFreezetime())
                .append("frozenType", getFrozenType())
                .append("createTime", getCreateTime())
                .append("paydate", getPaydate())
                .append("hb", getHb())
                .append("cxcl", getCxcl())
                .toString();
    }
}
